package com.qfmy.service.assistant;

import com.qfmy.vo.assistant.AiAnswerVo;
import model.entity.assistant.AiAnswer;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * @author 清风明月
 * @Package com.qfmy.service.assistant
 * @date 2025/5/18
 * @description 智能助手
 */
@SuppressWarnings("all")
public interface ChatService {

    /**
     * 获取聊天内容
     *
     * @param text
     * @param isThink
     * @param search
     * @return
     */
    Flux<String> text(String text, Boolean isThink, Boolean search);

    /**
     * 图片对话
     *
     * @param image
     * @param prompt
     * @return
     */
    Flux<String> image(String[] image, String prompt);

    /**
     * 语音播放
     *
     * @param audio
     * @return
     */
    byte[] audio(String audio);

    /**
     * 历史记录
     * @return
     */
    List<AiAnswer> history();

    /**
     * 删除历史记录
     * @param time
     */
    void deleteByTime(String time);

    /**
     * 根据时间获取历史记录
     * @param time
     * @return
     */
    List<AiAnswerVo> getHistoryByTime(String time);

    /**
     * 清除缓存
     */
    void clearCache();

    /**
     * 语音转文字
     * @param voice
     * @return
     */
    String voice(String voice);

    /**
     * 语音转文字
     * @param voice
     * @return
     */
    String voiceStream(String voice);

    /**
     * 文字转语音
     * @param text
     * @return
     */
    String tts(String text);
}
